package pe.edu.unmsm.fisi.sisconteg.repository.dao.impl;


import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;

import pe.edu.unmsm.fisi.sisconteg.domain.model.Usuario;
import pe.edu.unmsm.fisi.sisconteg.repository.dao.UsuarioDAO;


@Repository("usuarioDAO")
public class UsuarioDAOImpl implements UsuarioDAO {

	private SessionFactory sessionFactory;
	
	@Autowired
	public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

	@Override
	public Usuario getUsuarioxNick(String nick) throws DataAccessException {
		Usuario usuario = null;
		usuario = (Usuario) sessionFactory.getCurrentSession().createCriteria(Usuario.class)
				.add(Restrictions.eq("nickUsuario", nick))
				.uniqueResult();
		
		return usuario;
	}

	@Override
	public void crear(Usuario usuario) throws DataAccessException {
		sessionFactory.getCurrentSession().save(usuario);
	}

	@Override
	public void actualizar(Usuario usuario) throws DataAccessException {
		sessionFactory.getCurrentSession().update(usuario);
	}
}
